// 前面的名称固定的
import regeneratorRuntime from '../../libs/runtime/runtime';
import { axios } from '../../request/myAxios';

Page({
  // 1. 获取用户信息 
  //   返回  `encryptedData,rawData,iv,signature`
  // 2. 小程序登录验证码获取  
  //   返回 `code`
  // 3. 提交数据到自己 的后台 执行 post 请求 提交数据 
  //   ```json
  //   encryptedData,rawData,iv,signature code
  //   ```
  // 4. 将`token`和用户数据 `userInfo`存入本地存储

  // 获取用户信息的回调函数
  async getUserInfo({ detail }) {

    try {
      // 1. 获取用户信息，其中四个是用于请求的，userInfo 是用于做界面展示的
      const { userInfo, signature, rawData, iv, encryptedData } = detail;

      // 2. 获取微信登录验证码，
      // wx.login() 返回 Promise 对象，配合 async await 使用很方便。
      const { code } = await wx.login();

      // 3. 把信息发送到服务器，换取 token
      const { token } = await axios({
        // 请求方式
        method: "POST",
        url: '/users/wxlogin',
        data: { signature, rawData, iv, encryptedData, code }
      });

      // 4.1 把用户信息保存到本地存储
      wx.setStorageSync('userInfo', userInfo);
      // 4.2 把 token 保存到本地存储
      wx.setStorageSync('token', token);

      // 登录成功后跳转回上一个页面（支付页，个人中心页）
      wx.navigateBack({
        delta: 1
      });

    } catch (error) {
      // 登录失败提示重试
      wx.showToast({
        title: '授权失败，请重试',
        icon: 'none'
      });
    }

  }

});